package com.eltsistemas.os.controller.veiculo;

import java.text.ParseException;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.eltsistemas.hibernate.HibernateUtil;
import com.eltsistemas.os.dao.veiculo.CilindradaDao;
import com.eltsistemas.os.modelo.veiculo.Cilindrada;

@Controller
@RequestMapping("/cilindrada")
public class CilindradaController {

	@RequestMapping("/adiciona")
	public String adiciona(Cilindrada cilindrada)
	{
		Session session = new HibernateUtil().getSession();
		session.beginTransaction();
		
		CilindradaDao daoCilindrada = new CilindradaDao(session);
		
		try
		{
			daoCilindrada.adiciona(cilindrada);
			session.close();
			return "redirect:lista";
		}
		catch(Exception e)
		{
			return "redirect:lista?valor=true";
		}
	}
	
	@RequestMapping("/lista")
	public String lista(Model model, boolean valor)
	{
		Session session = new HibernateUtil().getSession();
		session.beginTransaction();
		
		CilindradaDao daoCilindrada = new CilindradaDao(session);	
		model.addAttribute("cilindradas", daoCilindrada.lista());
		
		session.close();
		return "cilindrada";
	}
	
	@RequestMapping("/alterado")
	public String altera(Cilindrada cilindrada) throws ParseException
	{

		Session session = new HibernateUtil().getSession();
		session.beginTransaction();

		CilindradaDao daoCilindrada = new CilindradaDao(session);
		try
		{
			daoCilindrada.altera(cilindrada);
			session.close();
			return "redirect:lista";
		}
		catch(Exception e)
		{
			return "redirect:lista?valor=true";
		}
		
	}
	
	
	@RequestMapping("/remover")
	public String remover(Cilindrada cilindrada)
	{

		Session session = new HibernateUtil().getSession();
		session.beginTransaction();

		try
		{
			CilindradaDao daoCilindrada = new CilindradaDao(session);	
			daoCilindrada.remover( cilindrada );
			session.close();
			return "redirect:lista";
		}
		catch(HibernateException e)
		{
			return "redirect:lista?valor=true";
		}

	}
	
}
